﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Elysium.Demo;
using SIIE_ERP.Codigo;
using SIIE_ERP.BaseDatos.Configuracion.Empresa.PagoLicencias;
using System.Data;
using SIIE_ERP.BaseDatos;
using SIIE_ERP.View;


namespace Elysium.Demo.Configuracion.PagoLicencias
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class DatosBancarios : UserControl
    {
        private UsuarioActivo _sesion;
        private bool _ExisteInfo;

        public DatosBancarios(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;
            CargaCombos();
            CargarDatos();
            
        }

        private void CargarDatos() 
        {
            dbo_Cat_Empresa_PagoDomiciliado Pd = new dbo_Cat_Empresa_PagoDomiciliado(_sesion.RFC, _sesion.UserName);
            DataTable dt_Pd = Pd.Get_Empresa_PagoDomiciliado_Por_RFC();

            if (dt_Pd.Rows.Count > 0)
            {
                _ExisteInfo = true;
                Button_Eliminar.IsEnabled = true;

                if (Boolean.Parse(dt_Pd.Rows[0]["IsAnual"].ToString()))
                    RadioMensual.IsChecked = true;
                else
                    RadioAnual.IsChecked = true;

                TextBox_FechaVenc_aa.Text = dt_Pd.Rows[0]["FechaVenc_aa"].ToString();
                TextBox_FechaVenc_mm.Text = dt_Pd.Rows[0]["FechaVenc_mm"].ToString();
                TextBox_CodigoSeguridad.Text = dt_Pd.Rows[0]["CodigoSeguridad"].ToString();
                TextBox_Numero_Tarjeta.Text = dt_Pd.Rows[0]["Numero_Tarjeta"].ToString();
                TextBox_Nombre.Text = dt_Pd.Rows[0]["Nombre"].ToString();
                TextBox_Apellidos.Text = dt_Pd.Rows[0]["Apellidos"].ToString();
                TextBox_Dir_Calle.Text = dt_Pd.Rows[0]["Dir_Calle"].ToString();
                TextBox_Dir_Colonia.Text = dt_Pd.Rows[0]["Dir_Colonia"].ToString();
                TextBox_Dir_CiudadPueblo.Text = dt_Pd.Rows[0]["Dir_CiudadPueblo"].ToString();
                Combo_Pais.SelectedValue = dt_Pd.Rows[0]["Id_Pais"].ToString();
                Combo_Estado.SelectedValue = dt_Pd.Rows[0]["Id_Estado"].ToString();
                TextBox_CP.Text = dt_Pd.Rows[0]["CP"].ToString();
                Combo_TipoTarjeta.SelectedValue = dt_Pd.Rows[0]["Id_TipoTarjeta"].ToString();
                TextBox_Email.Text = dt_Pd.Rows[0]["Email"].ToString();
                TextBox_Telefono.Text = dt_Pd.Rows[0]["Telefono"].ToString();
                TextBox_Celular.Text = dt_Pd.Rows[0]["Celular"].ToString();
            }
            else
            {
                _ExisteInfo = false;
                Button_Eliminar.IsEnabled = false;
            }
        }

        private void CargaCombos()
        {
            //Combo Tipo Tarjeta
            ComboBoxUI.ComboTipoTarjeta(Combo_TipoTarjeta, _sesion);
            //Combo Pais, Estado
            ComboBoxUI.ComboPaisEstado(ref Combo_Pais, ref Combo_Estado);
        }

        private void ButtonInformacion_Click_1(object sender, RoutedEventArgs e)
        {
            WindowAyuda Ayuda = new Elysium.Demo.WindowAyuda("DatosBancarios.htm", "Ayuda");
            Ayuda.Owner = SIIE_ERP.View.NavegacionUI.GetParentWindow(this); Ayuda.ShowDialog();
        }

        private void Button_Cancelar_Click_1(object sender, RoutedEventArgs e)
        {
            (this.Parent as ScrollViewer).Content = null;
        }

        private void Button_Guardar_Click(object sender, RoutedEventArgs e)
        {
            bool isError = false;

            if (String.IsNullOrEmpty(TextBox_FechaVenc_aa.Text))
            {
                MessageBox.Show("Favor de ingresar la fecha de vencimiento de su tarjeta correctamente.");
                isError = true;
            }
            try
            {
                int x = 0;
                x = Int32.Parse(TextBox_FechaVenc_mm.Text);
                x = Int32.Parse(TextBox_FechaVenc_aa.Text);
            }
            catch (Exception)
            {
                MessageBox.Show("Favor de ingresar la fecha de vencimiento de su tarjeta correctamente.");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_FechaVenc_mm.Text))
            {
                MessageBox.Show("Favor de ingresar la fecha de vencimiento de su tarjeta correctamente.");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_CodigoSeguridad.Text))
            {
                MessageBox.Show("Favor de ingresar correctamente su código de seguridad.");
                isError = true;
            }
            try
            {
                int x = 0;
                x = Int32.Parse(TextBox_CodigoSeguridad.Text);
            }
            catch (Exception)
            {
                MessageBox.Show("Favor de ingresar correctamente su código de seguridad.");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_Numero_Tarjeta.Text))
            {
                MessageBox.Show("Favor de ingresar correctamente el código de su tarjeta");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_Nombre.Text))
            {
                MessageBox.Show("Favor de ingresar su nombre");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_Apellidos.Text)){
                MessageBox.Show("Favor de ingresar sus apellidos");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_Dir_Calle.Text))
            {
                MessageBox.Show("Favor de ingresar la Calle de su dirección");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_Dir_Colonia.Text))
            {
                MessageBox.Show("Favor de ingresar la Colonia de su dirección");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_Dir_CiudadPueblo.Text))
            {
                MessageBox.Show("Favor de ingresar la Calle de su dirección");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_CP.Text))
            {
                MessageBox.Show("Favor de ingresar el CP de su dirección");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_Email.Text))
            {
                MessageBox.Show("Favor de ingresar la Calle de su dirección");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_Telefono.Text))
            {
                MessageBox.Show("Favor de ingresar su número de Teléfono");
                isError = true;
            }
            if (String.IsNullOrEmpty(TextBox_Celular.Text))
            {
                MessageBox.Show("Favor de ingresar su número de Celular");
                isError = true;
            }

            if (!isError)
            {
                dbo_Cat_Empresa_PagoDomiciliado Pd = new dbo_Cat_Empresa_PagoDomiciliado(_sesion.RFC, _sesion.UserName);
                Respuesta r = new Respuesta();

                if (_ExisteInfo)
                {
                    r = Pd.Update_Empresa_PagoDomiciliado_Por_RFC(
                        (bool)RadioAnual.IsChecked,
                        TextBox_FechaVenc_mm.Text,
                        TextBox_FechaVenc_aa.Text,
                        TextBox_CodigoSeguridad.Text,
                        TextBox_Numero_Tarjeta.Text,
                        TextBox_Nombre.Text,
                        TextBox_Apellidos.Text,
                        TextBox_Dir_Calle.Text,
                        TextBox_Dir_Colonia.Text,
                        TextBox_Dir_CiudadPueblo.Text,
                        Int32.Parse(Combo_Pais.SelectedValue.ToString()),
                        Int32.Parse(Combo_Estado.SelectedValue.ToString()),
                        TextBox_CP.Text,
                        Int32.Parse(Combo_TipoTarjeta.SelectedValue.ToString()),
                        TextBox_Email.Text,
                        TextBox_Telefono.Text,
                        TextBox_Celular.Text);
                    if (r.Id == 1)
                        MessageBox.Show("Información insertada exitosamente.");
                    else
                        MessageBox.Show("Error");
                }
                else
                {
                    r = Pd.Insert_Empresa_PagoDomiciliado(
                        (bool)RadioAnual.IsChecked,
                        TextBox_FechaVenc_mm.Text,
                        TextBox_FechaVenc_aa.Text,
                        TextBox_CodigoSeguridad.Text,
                        TextBox_Numero_Tarjeta.Text,
                        TextBox_Nombre.Text,
                        TextBox_Apellidos.Text,
                        TextBox_Dir_Calle.Text,
                        TextBox_Dir_Colonia.Text,
                        TextBox_Dir_CiudadPueblo.Text,
                        Int32.Parse(Combo_Pais.SelectedValue.ToString()),
                        Int32.Parse(Combo_Estado.SelectedValue.ToString()),
                        TextBox_CP.Text,
                        Int32.Parse(Combo_TipoTarjeta.SelectedValue.ToString()),
                        TextBox_Email.Text,
                        TextBox_Telefono.Text,
                        TextBox_Celular.Text);
                    if (r.Id == 1)
                        MessageBox.Show("Información insertada exitosamente.");
                    else
                        MessageBox.Show("Error");
                }

                CargarDatos();
            }
        }

        private void Button_Eliminar_Click_1(object sender, RoutedEventArgs e)
        {
            dbo_Cat_Empresa_PagoDomiciliado Pd = new dbo_Cat_Empresa_PagoDomiciliado(_sesion.RFC, _sesion.UserName);
            Respuesta r = Pd.Delete_Empresa_PagoDomiciliado_Por_RFC();

            if (r.Id == 1)
                MessageBox.Show("Se ha eliminado su información correctamente.");
            else
                MessageBox.Show("Error.");

            CargarDatos();
        }

        private void ButtonRegresar_Click_1(object sender, RoutedEventArgs e)
        {
            (this.Parent as ScrollViewer).Content = null;
        }

        private void ComboPais_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if ((sender as ComboBox).SelectedValue != null)
                ComboBoxUI.ActualizaEstado(Int32.Parse((sender as ComboBox).SelectedValue.ToString()), ref Combo_Estado);
        }
    }
}
